﻿using UnityEngine;

[CreateAssetMenu(fileName = "PlayerDataConfig", menuName = "ConfigData/PlayerDataConfig")]
public class PlayerConfigData : ScriptableObject {
	[Header("BaseGameData")]
	public float Gravity = 1;
	public float SlideFromWallAcceleration = 0.5f;
	public float FallAcceleration = 2;
	public int MaxHP = 100;

	[Header("CntData")]
	public int MaxJumpCnt = 2;

	[Header("TimeData")]
	public float SlideTime = 0.5f;
	public float WallRunTime = 0.6f;
	public float MaxGrabWallTime = 1.5f;
	public float DashTime = 1.5f;
	public float PreInputNormalizeTime = 0.3f;
	public float AtkAnimChangeNormalizeTime = 0.9f;
	public Vector2 ReboundActiveRange = new(0.6f, 0.8f);
	public float AtkTimeSlowSec = 0.1f;
	public float KnockDownTimeSlowSec = 0.2f;
	public float ReboundTimeSlowSec = 0.1f;
	public float SlowTimeScale = 0.2f;
	public float TwoAtkGap = 1; //连击间隔时间
	public float ShadowGap = 0.1f;
	public float DashShadowGap = 0.02f;
	public float DashTimeScale = 0.5f;
	public float DavidTimeScale = 0.1f;
	public float DashCd = 1;


	[Header("Damage")]
	public int PunchDamage = 10;
	public int SwdDamage = 20;
	public int BowDamage = 15;
	public int TickDamage = 15;
	public int KnockDownDamage = 25;

	[Header("SpeedData")]
	public float RunSpeed = 2;
	public float WalkSpeed = 1;
	public float SlideSpeed = 5;
	public float CrouchSpeed = 0.5f;
	public float AirXMoveSpeed = 3;
	public float JumpSpeed = 3;
	public float WallRunSpeed = 4;
	public float WallClimbSpeed = 2;
	public float MaxVelocityFallFromWall = -2.5f;
	public float ClimbOverSpeed = 1;
	public float GrdAtkXmoveSpeed = 1;
	public float DashDownSpeed = 8;
	public float DashSpeed = 8;
	public Vector2 AirTickSpeed;
	public Vector2 KnockDownSpeed;
	public float ArrowSpeed = 20;

	#region DetectRayInfo

	[Header("DetectRayDictance")]
	public float DetectDistance;

	[Header("DetectRayOffset")]
	public Vector2 GroundL;
	public Vector2 GroundR;
	public Vector2 CeilinL;
	public Vector2 CeilinR;
	public Vector2 WallUp;
	public Vector2 WallDown;

	#endregion

	[Header("AtkDetectOffset")]
	public Vector2 AirSwdAtkOff;
	public Vector2 AirTickOff;
	public Vector2 DashDownOff;
	public Vector2 GrdSwdAtkOff;
	public Vector2 GrdTickOff;
	public Vector2 PunchOff;
	public float DangerIconOff;

	[Header("AtkDetectRadius")]
	public float AirSwdRad;
	public float AirTickRad;
	public float DashDownRad;
	public float GrdSwdRad;
	public float GrdTickRad;
	public float PunchRad;

	[Header("Offset")]
	public Vector2 ClimbEdgeOffset;
	public Vector2 MakeArrowOffset;


}